package com.cskaoyan.javase.oop2._1extends._6limit;
/**
 * 继承的限制
 * 思考：
 * 1.父类中的私有成员能不能继承？
 *      可以继承，但是没有访问权限，不能子类对象名点直接访问。这一点可以通过父类中有权限的Getter方法测试得出结论。
 * 2.父类的构造器能不能继承？
 *      构造器不属于类的成员，构造器也不能被继承。
 * 3.父类中的静态成员能不能继承呢？
 *      通过测试，使用子类类名点是可以使用父类中的静态成员的。（需要有访问权限）
 *      但是这不属于继承
 *      继承也不考虑静态成员
 *
 * 何时使用继承？
 * 优先考虑两个类的关系，只有具有"is-a"关系的两个类才能够使用继承。不要单纯为了成员的复用使用继承。
 *
 * @since 11:04
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        Son s = new Son();
        // 'a' has private access in 'com.cskaoyan.javase.oop2._1extends._6limit.Father'
        // System.out.println(s.a);
        // System.out.println(s.getA());

        // 用子类类名点访问父类的静态成员
        // Son.test();
        System.out.println(Son.b);
        Son.b = 1000;
        System.out.println(Father.b);
    }
}
class Father{
    private int a = 10;

    public int getA() {
        return a;
    }

    static int b = 20;
    public static void test(){
        System.out.println("hello world");
    }
}
class Son extends Father{
    // static int b = 200;
}